home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.1 / flying.man < prev    next >
Text File  |  1995-07-25  |  16KB  |  397 lines

  1.  
  2.  
  3.  
  4.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           flying - pool/snooker/carrom/hockey/curling simulator
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           ffffllllyyyyiiiinnnngggg [-options ...]
  13.  
  14.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.           _f_l_y_i_n_g was actually meant to be a test program to implement
  16.           some classes to control flying objects on the screen. After
  17.           the classes were implemented there was the need of some real
  18.           tests and a game of billard was just the first idea. By now,
  19.           many subgame-classes are already more or less completely
  20.           defined. They can either be selected by the options or by
  21.           making a link to the original with a special name.
  22.           Unfortunately having so many subclasses means that the
  23.           classes themselves can't be too complicated. (There's just
  24.           too less time in the world :( ) Therefore the games don't
  25.           have any rules yet. This means you have to play fair and
  26.           watch your opponent.
  27.  
  28.           Anyway, the main thing was animation and controlling and
  29.           that works fine, especially with the ----ddddeeeelllluuuuxxxxeeee version of
  30.           pool-billard. Since the main intention was to get an
  31.           excellent billard game, I will mainly describe the pool-
  32.           version in the following pages. The other subgames are
  33.           similar to control (and there are no special rules anyway).
  34.  
  35.  
  36.      SSSSTTTTAAAATTTTUUUUSSSS
  37.           The flying package contains many subgames, that are more or
  38.           less in an experimental stage. Here is a tiny summary of
  39.           version 6
  40.  
  41.  
  42.         PPPPoooooooollll,,,, SSSSnnnnooooooookkkkeeeerrrr,,,, CCCCaaaannnnnnnnoooonnnn
  43.           As already mentioned above, pool is the most comprehensive
  44.           subgame, especially due to the deluxe version. It is very
  45.           playable even though spin is not implemented. Rules will
  46.           have to be added in later revision.
  47.  
  48.         CCCCaaaarrrrrrrroooommmm
  49.           Very similar to pool, just with another background (and more
  50.           friction)
  51.  
  52.         HHHHoooocccckkkkeeeeyyyy
  53.           experimental air-hockey implementation (see option -_i_n_2 to
  54.           set the display for the input-pointer for the second
  55.           player), which is worth looking at because of the
  56.           unconventional control mechanism. The players have to select
  57.           one of the big discs before they can play.
  58.  
  59.         CCCCuuuurrrrlllliiiinnnngggg
  60.  
  61.  
  62.  
  63.      PPPPaaaaggggeeee 1111                                          ((((pppprrrriiiinnnntttteeeedddd 6666////33330000////99995555))))
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  71.  
  72.  
  73.  
  74.           experimental curling implementation, which is even more
  75.           worth to look at because of the control: Hold the _l_e_f_t
  76.           button to take one curl.  Move it in the right direction and
  77.           let it go...
  78.  
  79.  
  80.      CCCCOOOONNNNTTTTRRRROOOOLLLLSSSS
  81.           The pointer (or pointers) run fully simultaenously and are
  82.           like the hand of the players. At every time it's possible to
  83.           pick one of the objects to select it as the cue-object (It
  84.           should better be the cueball, if you don't want to lose some
  85.           friends). After you have aimed in the desired direction
  86.           there are 2 ways to play the ball:
  87.  
  88.           easy:     Press and hold down the _l_e_f_t button to increase
  89.                     the strength of your shot.  Release the button to
  90.                     shoot. There is a maximum power! If you hold down
  91.                     the button too long, you will just make a very
  92.                     poor shot as a penalty.
  93.  
  94.           tricky:   You might notice on that the queue stays on the
  95.                     table for a moment. This is a problem, if you are
  96.                     very close to the cushion. Then, the cueball might
  97.                     hits the queue again. Therefor you can
  98.                     alternatively gather power by pressing the _r_i_g_h_t
  99.                     pointer button and shot by simultaenously pressing
  100.                     the _l_e_f_t button. When you release the _l_e_f_t button
  101.                     after the shot, the queue is removed from the
  102.                     table and you can therefore remove it earlier.
  103.  
  104.           After shooting, you can only wait and see what will happen.
  105.           By the way, there actually are some tiny rules implemented.
  106.           The billard classes know, that cueballs shouldn't stay in
  107.           the pocket after a shot. When they are back on the table,
  108.           you can roll them to the position you like by using the
  109.           _r_i_g_h_t pointer button.
  110.  
  111.           By the way, if you picked the wrong ball as the cue-object,
  112.           you can get rid of it by just clicking the _r_i_g_h_t button
  113.           once.
  114.  
  115.         SSSSuuuummmmmmmmaaaarrrryyyy
  116.           lllleeeefffftttt    select cueball
  117.                   introduce easy shot
  118.                   pick ball from pocket
  119.  
  120.           rrrriiiigggghhhhtttt   deselect cueball
  121.                   introduce tricky shot
  122.                   move ball
  123.  
  124.         AAAAddddddddiiiittttiiiioooonnnnaaaallll KKKKeeeeyyyy----CCCCoooonnnnttttrrrroooollllssss
  125.           QQQQ       quit game
  126.  
  127.  
  128.  
  129.      Page 2                                          (printed 6/30/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  137.  
  138.  
  139.  
  140.           RRRR       reset game
  141.  
  142.      OOOOPPPPTTTTIIIIOOOONNNNSSSS
  143.         XXXX11111111
  144.           ----ssssiiiizzzzeeee _n window size
  145.  
  146.           ----rrrrooooooootttt   full screen (the default)
  147.  
  148.           ----ddddiiiissssppppllllaaaayyyy _n_a_m_e
  149.                   the output-display (default is contents of $DISPLAY)
  150.  
  151.           ----iiiinnnn1111 _n_a_m_e
  152.                   name of the main display for input (default is: same
  153.                   as the output display)
  154.  
  155.           ----iiiinnnn2222 _n_a_m_e
  156.                   name of a second input display. If given, a second
  157.                   pointer object will be installed in the program and
  158.                   can be controlled by the pointer of the given
  159.                   display. (The pointer will get invisible on that
  160.                   display as it is grabbed anything)
  161.  
  162.                   As for every display connection, you have to make
  163.                   sure that all displays are accessible from your
  164.                   host. (by using _x_h_o_s_t ...)
  165.  
  166.           ----ssssoooouuuunnnndddd  a subprocess is started, which gives some clicks
  167.                   when balls hit together, but the smooth motion gets
  168.                   distorted in that way, at least on my workstation.
  169.  
  170.         AAAADDDDDDDDIIIITTTTIIIIOOOONNNNAAAALLLL
  171.           ----nnnnoooohhhhiiiinnnnttttssss
  172.                   the hinting arrows are not drawn (for the experts)
  173.  
  174.           ----ddddeeeelllluuuuxxxxeeee a special version of the pool with animated balls by
  175.                   using hundreds of precalculated pixmaps. The
  176.                   construction of the pixmaps at game start is very
  177.                   time consuming. Therefore the computed pixmaps are
  178.                   cached in files _f_l_y*-*._d_t_a in a special data-
  179.                   directory for reusability.
  180.  
  181.           ----fffftttt _n   sets the size of the table in pool-billard to _n
  182.                   foot. The value should be in a range of 6 to 9 feet.
  183.                   If not given, the size is selected randomly, except
  184.                   in the deluxe-version, where it default to 8 feet.
  185.                   This was done because every size would need other
  186.                   pixmaps for the balls.
  187.  
  188.           ----rrrreeeedddd ----ggggrrrreeeeeeeennnn ----bbbblllluuuueeee
  189.                   select color of the billard table. If not given, a
  190.                   random table is selected.
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                                          (printed 6/30/95)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  203.  
  204.  
  205.  
  206.         DDDDEEEEBBBBUUUUGGGG
  207.           ----ttttiiiimmmmeeee _s stop process after _s seconds
  208.  
  209.           ----ddddeeeemmmmoooo   demonstration (without pockets). By the way, there
  210.                   are some tiny meters on the bottom of the screen
  211.                   (when using the full screen), which have the
  212.                   following meanings:
  213.  
  214.                   rate:   shows the number of cycles per second. A
  215.                           cycle means the loop for doing collision
  216.                           detection and recomputing the corrent
  217.                           position of all objects.
  218.  
  219.                   moves:  show the number of ball moves, that were
  220.                           neccessary in one seconds. If all objects
  221.                           are moving, this would be <object number> x
  222.                           <rate>
  223.  
  224.                   offset: if shown, it tells you, how much the real
  225.                           time has gone ahead of the current internal
  226.                           calculation time. It should never light up
  227.                           during the game, except probably at the
  228.                           first shot into the triangle.
  229.  
  230.           ----mmmmaaaaxxxxssssppppeeeeeeeedddd
  231.                   the collision calculation is done only in those
  232.                   moments, when a collision takes place. In the
  233.                   intermediate time, only the motion graphics are
  234.                   updated as fast as possible. The switch disables
  235.                   that intermediate calculation to get measures for
  236.                   the speed of the collision calculation.  (Good
  237.                   combinations to check the speed of your machine
  238.                   would be: -demo -maxspeed -time 10)
  239.  
  240.           ----pppprrrreeeesssseeeettttssss
  241.                   shows the current internal values of static
  242.                   variables on stdout.  The values can be dynamically
  243.                   altered by setting them in the file _p_r_e_s_e_t_s._t_x_t with
  244.                   the same syntax as in this output.
  245.  
  246.           There are many additional debugging options, when the
  247.           executable was compiled for debugging. They are shown when
  248.           no argument or -h is given at the commandline. You can try
  249.           flying -pool -deluxe Intro (if you're lucky) to see the some
  250.           information about the pixmap-usage.
  251.  
  252.      FFFFIIIILLLLEEEESSSS
  253.           presets.txt   file to overwrite internal static values
  254.  
  255.           fly*-*.dta    files containing the pixmaps for the ball
  256.                         animation in deluxe-pool.  They are created
  257.                         automatically when they are missing.
  258.  
  259.  
  260.  
  261.      Page 4                                          (printed 6/30/95)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  269.  
  270.  
  271.  
  272.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  273.           X(1), xhost(1)
  274.  
  275.      BBBBUUUUGGGGSSSS
  276.           As I told, this is a very uncompleted version without any
  277.           rules, but you can perfectly play billard, so why worrying
  278.           ...
  279.  
  280.           The friction is not exactly integrated in the computations,
  281.           since that would have cost too much performance. Instead the
  282.           objects move without friction for a given amount of time.
  283.           Then their speed is re-adjusted. When the granularity gets
  284.           smaller, the friction gets more exact. But that works
  285.           against a caching-mechanism and therefore would extremely
  286.           increase computation time, if many objects are on the table.
  287.  
  288.           Spin is not implemented
  289.  
  290.           There seem to problems, when moving objects directly with
  291.           the pointer (like in hockey or curling or with the right
  292.           button in billard) when the host is not fast enough. At
  293.           least I can not use it on my 386.
  294.  
  295.           There are some minor problems when drawing static parts of
  296.           the screen.  Sometimes they are misplaced for 1 pixel, e.g.
  297.           there is a one pixel gap below the line representing the
  298.           pocket
  299.  
  300.           The program constantly produces a load of one and grabs the
  301.           pointer, since it was not meant to run it simulaenously with
  302.           other programs.
  303.  
  304.           There is a problem in the start-shot of carrom. Due to the
  305.           weight of the striker, the other stones might get pushed so
  306.           close together, that the collision detection will fail and
  307.           objects will overlap (or the algorithm gets stuck in a loop,
  308.           only to be escaped by entering 'q'). Sorry for that.
  309.  
  310.  
  311.      CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
  312.           Copyright 93-95, Helmut Hoenig, Mettmann/Bad Camberg
  313.  
  314.           email (for any comments):
  315.                   Helmut.Hoenig@hub.de
  316.  
  317.           smail (for gifts):
  318.                   Helmut Hoenig
  319.                   Hopfenstrasse 8a
  320.                   65520 Bad Camberg
  321.                   GERMANY
  322.  
  323.                ********************************************************
  324.  
  325.  
  326.  
  327.      Page 5                                          (printed 6/30/95)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      ffffllllyyyyiiiinnnngggg((((1111))))         XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((11114444 MMMMaaaarrrrcccchhhh 1111999999995555))))          ffffllllyyyyiiiinnnngggg((((1111))))
  335.  
  336.  
  337.  
  338.                *                                                      *
  339.                *  By the way, I am collecting banknotes! If you want  *
  340.                *  to join into my collection, get any bill of your    *
  341.                *  country, sign it on the backside and send it to me  *
  342.                *  so I will pin it on my world map.                   *
  343.                *  (Don't forget the exact location for the pin :-)    *
  344.                *                                                      *
  345.                ********************************************************
  346.  
  347.           Permission to use, copy, modify, and distribute this
  348.           software for any purpose and without fee is hereby granted,
  349.           provided that the above copyright notice appear in all
  350.           copies.
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                                          (printed 6/30/95)
  394.  
  395.  
  396.  
  397.